{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# All The Recipes\n", "`conda-build`'s `meta.yaml` is a useful, but very under-specified document format. The only truth is.... All The Recipes!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import requests, requests_cache, re, tqdm.notebook, time, random, pathlib, IPython\n", "requests_cache.install_cache(\"feedstocks\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While `requests_cache` is handy, we want the files on disk for later." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "RECIPES = pathlib.Path(\"examples/recipes\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most-professionally maintained collections of recipes are\n", "- the community-managed `conda-forge`\n", "- the indemnified `AnacondaRecipes`\n", "- > TODO: the niche (but very prolific) `bioconda` " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "rg = \"https://raw.githubusercontent.com\"\n", "cf = \"conda-forge/feedstocks\"\n", "ar = \"AnacondaRecipes/aggregate\"\n", "rm = \"recipe/meta.yaml\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While both are multi-repos, they have different approaches to storing their recipes. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "composites = {\n", " cf: lambda m: [f\"{rg}/conda-forge/{sm}/master/{rm}\" for sm in re.findall(r'/([^/]*)\\.git', m)],\n", " ar: lambda m: [f\"{rg}/{ar}/master/{sm}/{rm}\" for sm in re.findall(r\"\\.\\./(.*).git\", m)],\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We `request` the `.gitmodules` and transform them into URLs." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "recipe_urls = []\n", "\n", "for composite, fn in composites.items():\n", " url = f\"{rg}/{composite}/master/.gitmodules\"\n", " modules = requests.get(url).text\n", " recipe_urls.extend(fn(modules))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3b738481421f4d149bf846a93d8a5563", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=9098.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "https://raw.githubusercontent.com/conda-forge/setuptools_markdown-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/empy-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/log4cxx-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/sbcl-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/assimp-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/zziplib-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/catkin_tools-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/osrf_pycommon-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/libxt-cos7-ppc64le-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/libice-cos7-ppc64le-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/libsm-cos7-ppc64le-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/omniscidb-cuda-feedstock/master/recipe/meta.yaml \n", "https://raw.githubusercontent.com/conda-forge/java-org.apache.arrow.arrow-jdbc-with-dependencies-feedstock/master/recipe/meta.yaml \n", "\n" ] } ], "source": [ "for url in tqdm.notebook.tqdm(recipe_urls):\n", " if url.startswith(f\"{rg}/conda-forge\"):\n", " path = RECIPES / \"conda-forge\" / url.split(\"/conda-forge/\")[1].split(\"/\")[0]\n", " elif \"AnacondaRecipes\" in url:\n", " path = RECIPES / \"AnacondaRecipes\" / url.split(\"master\")[1].split(\"/\")[0]\n", " if path.exists():\n", " continue\n", " r = requests.get(url)\n", " try:\n", " r.raise_for_status()\n", " except:\n", " print(url, r)\n", " continue\n", " path.mkdir(parents=True)\n", " (path / \"meta.yaml\").write_text(r.text)\n", " # don't be a jerk\n", " time.sleep(random.random())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are some fails, as not all of them have `master` (or something), and while those strange outliers are no doubt interesting, we'll call it a wash." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "all_recipes = sorted(\n", " [r.read_text() for r in RECIPES.rglob(\"*.yaml\")],\n", " key=len\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Measuring Complexity\n", "While not strictly accurate, the length of the feedstock _should_ be a good indicator of its complexity." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "YAML = lambda r: IPython.display.Markdown(\"\"\"```yaml\\n{}```\"\"\".format(r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The shortest recipe." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "```yaml\n", "package:\n", " name: cling-patches\n", " version: 1\n", "\n", "build:\n", " number: 0\n", " track_features:\n", " - cling\n", "\n", "test: {}\n", "\n", "about:\n", " home: https://github.com/conda-forge/cling-patches-feedstock\n", " license: BSD 3-clause\n", " summary: Metapackage to track the cling feature variant.\n", "\n", "extra:\n", " recipe-maintainers:\n", " - SylvainCorlay \n", " - inducer\n", "```" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YAML(all_recipes[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The longest recipe." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "```yaml\n", "{% set name = \"ca-policy-lcg\" %}\n", "{% set version = \"1.102\" %}\n", "\n", "package:\n", " name: {{ name|lower }}\n", " version: {{ version }}\n", "\n", "# This section can be generated by ./recipe/update_sources.py\n", "source:\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_policy_lcg-{{ version }}.tar.gz\n", " sha256: 40affb2f28976cbfd1a37b60b01de66d748fe29b91a9ef5dda3cbc59bb82bf86\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AC-GRID-FR-{{ version }}.tar.gz\n", " sha256: 16dfb1bd57ec6ee87b4fd13089ee5066c81142d137edc60c4c0285a81d27af30\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AC-GRID-FR-Personnels-{{ version }}.tar.gz\n", " sha256: ad9c32b72d6edc1285a441fc377770637574da42ab2b88844884091badc4b850\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AC-GRID-FR-Robots-{{ version }}.tar.gz\n", " sha256: 9ba1c9993268f1e34887a919550520c65ade8438b1e07cdfa3aa102f65430005\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AC-GRID-FR-Services-{{ version }}.tar.gz\n", " sha256: a5fbc0a4dde9071fb4ed9c13a3cfc43c4908aa652d7fd6151386a00266c02289\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AEGIS-{{ version }}.tar.gz\n", " sha256: 87860e1266adc8a42a401a7a2db0f37e365e45998c3ff6965ec85077c7329419\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_ANSPGrid-{{ version }}.tar.gz\n", " sha256: c735cf51150caa553c8ed34198185174387e47b7bc1eac2b88dd4c451a1f8db7\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_ASGCCA-2007-{{ version }}.tar.gz\n", " sha256: 9f0206d4edadb1a8d23ddb4d9e6158784d667090b6cec25aeeedd7ce930aec41\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AddTrust-External-CA-Root-{{ version }}.tar.gz\n", " sha256: d9f02b20203ff9e6db19b82f406279f016a33bd4830f1760aa66f6bdecfc797e\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_ArmeSFo-{{ version }}.tar.gz\n", " sha256: 7b453a4d997e4412737c59e00c6593ec348efc51a15c6b45ff077e5841911ade\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_AustrianGrid-{{ version }}.tar.gz\n", " sha256: d76140a57a1184b7c63a6b4c010b7431d8ffa4a4852a8e0e4b05478096115f1c\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_BG-ACAD-CA-{{ version }}.tar.gz\n", " sha256: 3f220aad23cb0d887d015372bf0fa4c2a9f073a88d1da3b628aed75a29af5f95\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_BYGCA-{{ version }}.tar.gz\n", " sha256: 39b38b37644ba991ab9b1783dd84b610fcb727c49aa0c702c4e0f8b33b276531\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CERN-GridCA-{{ version }}.tar.gz\n", " sha256: 906c8e5bbecd5c058acc01b404de926c1e635bfdd66af1ffb3e21afddf16c5a8\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CERN-LCG-IOTA-CA-{{ version }}.tar.gz\n", " sha256: 2b6e43bdcc4d7aaede94904cc8683acb9f2f9d94b80c80ce31c9a51a476746aa\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CERN-Root-2-{{ version }}.tar.gz\n", " sha256: 1946b80911d950040c1b13e02b3152f38db8afddfc38d6366c9b7becf621ad21\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CESNET-CA-3-{{ version }}.tar.gz\n", " sha256: 9384ff294b0ae2914c82fdc56fbb256a1a23cd543323eeea58f7ef501f4fae0b\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CESNET-CA-Root-{{ version }}.tar.gz\n", " sha256: 20ed1461ecd89dd77a6901a8c3f7d83b4167e2a015fea3520c43472024dabec1\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CNIC-{{ version }}.tar.gz\n", " sha256: aac9b06fb761db251e84e2a81075a9f4501bca1ee31fd6832988cc896cf276c4\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CNRS2-{{ version }}.tar.gz\n", " sha256: b2315cd0aa7234739303c81d78588d349a46f8c4d85a17b26fd573e9b54af02a\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CNRS2-Grid-FR-{{ version }}.tar.gz\n", " sha256: 6b78397ca391291f9f1ba0fce5228c0a4a4cfa3c27d2747df6e53ca1ce8e0c52\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_CNRS2-Projets-{{ version }}.tar.gz\n", " sha256: a777e757220793e436a13be891a26c29926674131740b5688e7297ce6b8d0a82\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_COMODO-RSA-CA-{{ version }}.tar.gz\n", " sha256: 794b86c689ed42e315709d40dda8b0606b7b44bbdcf45b8b4e310310b605e933\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DCAROOT-G1-{{ version }}.tar.gz\n", " sha256: 4a37c2498b8c13d2d033a77990d266c55853a22b65d49f437d6c295cb7a66504\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DFN-GridGermany-Root-{{ version }}.tar.gz\n", " sha256: 5f7463167ae879921791875e3cce6dba46bafecf07aaef7422a77c7d9f2f20df\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DZeScience-{{ version }}.tar.gz\n", " sha256: e4577af1522b6e446d21a77f0d59ebbf59196ba8b563d089976285bdb2cb7c0e\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DarkMatterAssuredCA-{{ version }}.tar.gz\n", " sha256: dd7245c709eb41d8185b7bc0134b1b6777fe894588e252d475006e7b18d52074\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DarkMatterIGTFCA-{{ version }}.tar.gz\n", " sha256: e898ff56749fa850940f5ea6ca3517c2e375e85eba526a29d32610d21cfba377\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DarkMatterPrivateRootCAG4-{{ version }}.tar.gz\n", " sha256: 311ef9fa90afc15ab567eaf824af26a333755efd9c3354b5452176dd7d0f541a\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DarkMatterSecureCA-{{ version }}.tar.gz\n", " sha256: a8143d6c1bec01b20906dc68e52061d34957aad2eec1148f697855d16f31a7f4\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DigiCertAssuredIDRootCA-Root-{{ version }}.tar.gz\n", " sha256: 4cf361630c39d069a8669b0f8e7cfe178b05f514cd3db70b89052ea27b6af0f4\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DigiCertGridCA-1-Classic-{{ version }}.tar.gz\n", " sha256: cc62822b5f846691eced5f825c6d8eabeda78da68f73f7d69a43ec289889b41a\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DigiCertGridCA-1G2-Classic-2015-{{ version }}.tar.gz\n", " sha256: 2fd0c58b502a625288a1d65385ca23eebe6cf296e57488cf17e5b56ba30be8ab\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DigiCertGridRootCA-Root-{{ version }}.tar.gz\n", " sha256: 4959c7466cf6bbe3cb999b1a43e320e98f0396852d09c6d2d5b6d1bb1b396220\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DigiCertGridTrustCA-Classic-{{ version }}.tar.gz\n", " sha256: 778a1505a25382b0560cf6a38395f61acfa68c220d6f536359f03dc82d811016\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_DigiCertGridTrustCAG2-Classic-{{ version }}.tar.gz\n", " sha256: c1522d1465133ad18ebb9121bd8353970941a706b0b7b58b83642ad0ab3b4594\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_GermanGrid-{{ version }}.tar.gz\n", " sha256: c57c569aa7707e5ad1d8c4ee335444d1893fa4278ddac60e727f4c9660b1f302\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_GridCanada-{{ version }}.tar.gz\n", " sha256: dd7118481953d2d10ca74bcbbbf84254143262b8ab2e227dba9ad8c8aa8c57bb\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_HKU-CA-2-{{ version }}.tar.gz\n", " sha256: 42acb99b5eccf665e1823eebb473b42b9203246140241ec271505cf7e1d24054\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_HPCI-{{ version }}.tar.gz\n", " sha256: a41ee88445c25b060da9a3dbf95509dd9c97c838328d24aad7dcb7729b71c5ba\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_HellasGrid-CA-2016-{{ version }}.tar.gz\n", " sha256: 4443ffdc9f93487c169b4e60fcf7c1c0c3d3802826bfa3639b62f77bab1ea119\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_IGCA2-{{ version }}.tar.gz\n", " sha256: d3e233cdd55e1ae9fdfcc8517ae161d9be6fe840187848840dabe4fe3fbd7a04\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_IHEP-2013-{{ version }}.tar.gz\n", " sha256: 2e135fe269ee04458bb1e0494adf113e489bae493c4bc5a241418a8e0118a289\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_INFN-CA-2015-{{ version }}.tar.gz\n", " sha256: 71bf5d0256a2df956e01619cf83be57acb8390e650a8dff4abe4ad0106e6d85d\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_IRAN-GRID-GCG-G2-{{ version }}.tar.gz\n", " sha256: 08b07f2f28412d07ae8d0f03f475ab3138b5495cba8a5f3441447970de5eec86\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_InCommon-IGTF-Server-CA-{{ version }}.tar.gz\n", " sha256: c9f56c1d6db49a30cc84021147872032b193e6ecd3826558b840fef3425f24e6\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_KEK-{{ version }}.tar.gz\n", " sha256: 67cfd60352d94bc842cd4bd48850d3c5f80b662daf0ce5d48195bfa4e12bec92\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_KENETCA-ICA-2015-{{ version }}.tar.gz\n", " sha256: 50aea96e5a7920fceeb183e8edfb05f8fb53e9bb4e6486fe83598355080109ef\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_KENETROOTCA-{{ version }}.tar.gz\n", " sha256: 285f1d8a6aacf0ac6cab39b6a93d288a2bf9ba64355feec2d9fd3a835d2ca2cd\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_KISTIv3-{{ version }}.tar.gz\n", " sha256: e7cbfcbd6c8bb8bb92797a7cb433aacabb47236e69df433c8d68ea4183f8c75e\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_LIPCA-{{ version }}.tar.gz\n", " sha256: 6b33378bc35bd3342890023e2169e619e855b3715c36cb4cb871b7cf8b5d5899\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_MARGI-{{ version }}.tar.gz\n", " sha256: 442240b7ae22c0398273ca23267226d649d03eb8686e5773eb2af46ac148e9df\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_MD-Grid-CA-T-{{ version }}.tar.gz\n", " sha256: 1a7edda3fd0c76ce049938135c3a485cbbaf0be34203f65730a57e05929e9e2c\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_MREN-CA-{{ version }}.tar.gz\n", " sha256: 4ff8d17c78216ef80b1ea674017c39e17ccc75b75bc4ca1207c2b0afb3aa9ff7\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_MYIFAM-{{ version }}.tar.gz\n", " sha256: 546ce53c6984dfe2f1286169c93c0812a4517695bc9a135fe8c2eaad313075b2\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_MaGrid-{{ version }}.tar.gz\n", " sha256: b597d32ca3031e8865ee9547a67a75affab696d575c937734204bff03a14ff24\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_NCSA-slcs-2013-{{ version }}.tar.gz\n", " sha256: de1587c4a2b346616b4dbbfefab892fef108e2fc339f9717d3b8e7ebc3e1a6a9\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_NCSA-tfca-2013-{{ version }}.tar.gz\n", " sha256: 513f1ad9916d8ef357b5713f1e81f81f0a33019b2cef01157a7225f2b352edaf\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_NERSC-SLCS-{{ version }}.tar.gz\n", " sha256: f346f30bbd78dad4381243233c736fb6df03fd57c7887f30bf0523a8cf9dbe99\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_NIIF-Root-CA-2-{{ version }}.tar.gz\n", " sha256: 77368e0639a57fb4bfd3e8f87867cdf9e54f7153c1881dca5c95e24fb7517353\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_NIKHEF-{{ version }}.tar.gz\n", " sha256: 7c4ad9065f214e4e1629cf7fc7f77c987dc8c78cb900ce585d425abb52ebf0b0\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_NorduGrid-2015-{{ version }}.tar.gz\n", " sha256: 23b558282e41300c413839186c0b670d971678e67d244a006a9e3702d0d1bfdf\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_PK-Grid-2007-{{ version }}.tar.gz\n", " sha256: 02b59ee49f66cb53f22f2d7edd8c8bb7c01947ec8fccbfdd4e9882d1a1de7da7\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_PKIUNAMgrid-{{ version }}.tar.gz\n", " sha256: 8c21a4f33952b6ae6f8f53a8d010a16f0963d9c204524f8d2d28f8410ff9c20e\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_PSC-Myproxy-CA-{{ version }}.tar.gz\n", " sha256: 32cafaf4a4245feab8129dc5f9e6138d7ae548a17f0fdb373b409ae26d3214d3\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_PolishGrid-{{ version }}.tar.gz\n", " sha256: f072a5861d23fc6cf95a81fd372b156a3ff9fa9bb21300d2d42fcc91fa15c714\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_PolishGrid-2019-{{ version }}.tar.gz\n", " sha256: 7ae7254b1c87cd1cd5293c3ae7318fd9d5b8479669eb951ba7eff30899076640\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_QuoVadis-Grid-ICA-G2-{{ version }}.tar.gz\n", " sha256: b5915b325b1b16fcc77bf3a1bee1e4cb95149130a126ab097813dda5711111d4\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_QuoVadis-Root-CA1-{{ version }}.tar.gz\n", " sha256: 94fbb1e31301b2e2dc730b4999cd7e5bc0e6522a7ea2056a0822ad79c1ea530d\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_QuoVadis-Root-CA2-{{ version }}.tar.gz\n", " sha256: ce19443e9e3bd1cc3a05b3cf63ac769d5582a9e976dd179749ede9767593f9f4\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_QuoVadis-Root-CA2G3-{{ version }}.tar.gz\n", " sha256: f80597ead4e3fd3051ef43231077d9bb5e4c0c35656a593416f8929799a21ab7\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_QuoVadis-Root-CA3G3-{{ version }}.tar.gz\n", " sha256: 8d53e3465a492c61f0fc2d1896dc3bb88de0b664e96474ab98b9700576c53304\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_RDIG-{{ version }}.tar.gz\n", " sha256: cb275fb2d761715590093590eb00428e3d5514b52981de53b4ab11394ebddbd0\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_REUNA-ca-{{ version }}.tar.gz\n", " sha256: b43c174b4160d790c3a063412277923ceb609094f7ee2484399a6127ab2c81e9\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_RomanianGRID-{{ version }}.tar.gz\n", " sha256: 6a7cc7f029466c5b33e830faaaabf1d32da83305342c5ae2098cb2450a0c9634\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_SDG-G2-{{ version }}.tar.gz\n", " sha256: 85e1851e7ae45bd8640f4074a97bd226c4be29faf629a16d6a190f8374ed531d\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_SRCE-{{ version }}.tar.gz\n", " sha256: 471bb49cb6ff6e99126a43724e78cc220bd7a9e781f23f204947baa33edcf61e\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_SiGNET-CA-{{ version }}.tar.gz\n", " sha256: 263c937fb131b13a8ffca6cff8e677b89c0603bbf5fac91306685e20bcfaf311\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_SlovakGrid-{{ version }}.tar.gz\n", " sha256: 1f76853dc537024176c873aaa88ef03dc631547da3902f6be25adfc355bb32e9\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_TERENA-eScience-SSL-CA-3-{{ version }}.tar.gz\n", " sha256: ea94504de6f976672364d3a719ef18812f0f3edcca96877a88c521d2f05a4be6\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_TERENAeSciencePersonalCA3-{{ version }}.tar.gz\n", " sha256: ea8fe8803494d8fbb23558ff2f41843babb14710e7b40840b771b181c4376816\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_TRGrid-{{ version }}.tar.gz\n", " sha256: 2fc472452fb6ba95ada6c55a629e3b247af1bc4dca92d31b63ee3ca2cc4e9d8e\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_TSU-GE-{{ version }}.tar.gz\n", " sha256: 881c4f9389d7ca7ea3d7c508ec55825e71d0e00040384e6617884bdb903f71d8\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_UGRID-G2-{{ version }}.tar.gz\n", " sha256: 1c75a61608b38fabf006e761cea22a916d8ca1766049ab61a040d6a185962d49\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_UKeScienceCA-2B-{{ version }}.tar.gz\n", " sha256: b1969fa8a718a5d455227e04bd01775bf337bde12ed76d22eb08578708bea9ad\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_UKeScienceRoot-2007-{{ version }}.tar.gz\n", " sha256: f31a8851eb7e01c7fcbdcb316714062c4a44370b731ca192655150fb98978517\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_UNAMgrid-ca-{{ version }}.tar.gz\n", " sha256: 0a7287d6a938c6b9ee4fb3ffb79aa4463969e8b4a068224413e7057230851a95\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_UNLPGrid-{{ version }}.tar.gz\n", " sha256: e0ef8d1e58817b4de453711257726247cc868c33878b671afa13852d3030b46c\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_cilogon-silver-{{ version }}.tar.gz\n", " sha256: 306a49f91594bb9a32de67cc643d29d358e799e2d770190bfb2630e7ec4ba464\n", " folder: ca-policy-lcg\n", " - url: https://repository.egi.eu/sw/production/cas/1/current/tgz/ca_seegrid-ca-2013-{{ version }}.tar.gz\n", " sha256: 3ae57a5d40515d84000a04b8da46688b58423cf1db0291a6cf59caef48576d33\n", " folder: ca-policy-lcg\n", "\n", "build:\n", " noarch: generic\n", " number: 0\n", " # DIRAC will try to update these automatically so avoid linking between environments\n", " no_link:\n", " - ${PREFIX}/etc/grid-security/certificates/*\n", "\n", "requirements:\n", " build:\n", " # Dummpy requirement to ensure conda-forge builds this correctly\n", " - make\n", "\n", "test:\n", " commands:\n", " - echo \"${X509_CERT_DIR}\"\n", "\n", "about:\n", " home: http://www.egi.eu/\n", " license: IGTF Federation\n", " license_file: LICENSE\n", " license_family: other\n", " summary: 'Trust anchors endorsed by the EGI.eu foundation'\n", " description: |\n", " This package encodes the policy on Approval of Certificate Authorities,\n", " as documented in JSPG Policy Document https://edms.cern.ch/document/428038,\n", " as adopted and amended by the authoritative body or bodies for egi-core.\n", " By this policy it incorporated those trust anchors accredited by\n", " the IGTF under the profiles classic,mics,slcs, except those for\n", " which egi-core has decided to withdraw its endorsement and including added\n", " authorities.\n", "\n", "extra:\n", " recipe-maintainers:\n", " - chrisburr\n", "```" ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YAML(all_recipes[-1])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }